home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -in_the_mag- / reader_requests / scilab / tests / calpol.dia.ref < prev    next >
Text File  |  1999-09-16  |  15KB  |  507 lines

  1.  
  2. //
  3.  
  4. deff('[ok]=cmpr(h1,h2,eps)',['h1=h1-h2;';
  5.          'if norm(coeff(h1(2)))>eps then ok=0,else ok=1,end'])
  6.  
  7. comp(cmpr)
  8.  
  9. s=poly(0,'s');
  10.  
  11. //
  12.  
  13. //rationals
  14.  
  15. //
  16.  
  17. num=1;den=1+s;
  18.  
  19. eps=5000*%eps;
  20.  
  21. if cmpr(num/den,tlist('r',num,den,[]),eps)<>1 then bugmes();quit;end
  22.  
  23. if cmpr(den\num,tlist('r',num,den,[]),eps)<>1 then bugmes();quit;end
  24.  
  25. if cmpr(num./den,tlist('r',num,den,[]),eps)<>1 then bugmes();quit;end
  26.  
  27. if cmpr(den.\num,tlist('r',num,den,[]),eps)<>1 then bugmes();quit;end
  28.  
  29. num=1.5+s**3;
  30.  
  31. if cmpr(num/den,tlist('r',num,den,[]),eps)<>1 then bugmes();quit;end
  32.  
  33. if cmpr(den\num,tlist('r',num,den,[]),eps)<>1 then bugmes();quit;end
  34.  
  35. if cmpr(num./den,tlist('r',num,den,[]),eps)<>1 then bugmes();quit;end
  36.  
  37. if cmpr(den.\num,tlist('r',num,den,[]),eps)<>1 then bugmes();quit;end
  38.  
  39. //
  40.  
  41. h1=num/den;x=1.5;
  42.  
  43. if cmpr(h1+x,tlist('r',num+x*den,den,[]),eps)<>1 then bugmes();quit;end
  44.  
  45. if cmpr(x+h1,tlist('r',num+x*den,den,[]),eps)<>1 then bugmes();quit;end
  46.  
  47. if cmpr(h1-x,tlist('r',num-x*den,den,[]),eps)<>1 then bugmes();quit;end
  48.  
  49. if cmpr(x-h1,tlist('r',-num+x*den,den,[]),eps)<>1 then bugmes();quit;end
  50.  
  51.  
  52. x=1.5+3*s;
  53.  
  54. if cmpr(h1+x,tlist('r',num+x*den,den,[]),eps)<>1 then bugmes();quit;end
  55.  
  56. if cmpr(x+h1,tlist('r',num+x*den,den,[]),eps)<>1 then bugmes();quit;end
  57.  
  58. if cmpr(h1-x,tlist('r',num-x*den,den,[]),eps)<>1 then bugmes();quit;end
  59.  
  60. if cmpr(x-h1,tlist('r',-num+x*den,den,[]),eps)<>1 then bugmes();quit;end
  61.  
  62. y=s**3;h2=x/y;
  63.  
  64. if cmpr(h1+h2,tlist('r',num*y+x*den,den*y,[]),eps)<>1 then bugmes();quit;end
  65.  
  66. if cmpr(h1-h2,tlist('r',num*y-x*den,den*y,[]),eps)<>1 then bugmes();quit;end
  67.  
  68. //
  69.  
  70. // concatenations
  71.  
  72. //
  73.  
  74. h1=num/den;x=1.5;
  75.  
  76. if cmpr([h1,x],tlist('r',[num,x],[den,1],[]),eps)<>1 then bugmes();quit;end
  77.  
  78. if cmpr([x,h1],tlist('r',[x,num],[1,den],[]),eps)<>1 then bugmes();quit;end
  79.  
  80. if cmpr([h1;x],tlist('r',[num;x],[den;1],[]),eps)<>1 then bugmes();quit;end
  81.  
  82. if cmpr([x;h1],tlist('r',[x;num],[1;den],[]),eps)<>1 then bugmes();quit;end
  83.  
  84. x=1.5+3*s;
  85.  
  86. if cmpr([h1,x],tlist('r',[num,x],[den,1],[]),eps)<>1 then bugmes();quit;end
  87.  
  88. if cmpr([x,h1],tlist('r',[x,num],[1,den],[]),eps)<>1 then bugmes();quit;end
  89.  
  90. if cmpr([h1;x],tlist('r',[num;x],[den;1],[]),eps)<>1 then bugmes();quit;end
  91.  
  92. if cmpr([x;h1],tlist('r',[x;num],[1;den],[]),eps)<>1 then bugmes();quit;end
  93.  
  94. y=-0.5+s**3;h2=x/y;
  95.  
  96. if cmpr([h1,h2],tlist('r',[num,x],[den,y],[]),eps)<>1 then bugmes();quit;end
  97.  
  98. if cmpr([h1;h2],tlist('r',[num;x],[den;y],[]),eps)<>1 then bugmes();quit;end
  99.  
  100. h1=[num/den,den/num];x=[0.3 1.5];
  101.  
  102. if cmpr([h1,x],tlist('r',[h1(2),x],[h1(3),ones(x)],[]),eps)<>1 then bugmes();quit;end
  103.  
  104. if cmpr([x,h1],tlist('r',[x,h1(2)],[ones(x),h1(3)],[]),eps)<>1 then bugmes();quit;end
  105.  
  106. if cmpr([h1;x],tlist('r',[h1(2);x],[h1(3);ones(x)],[]),eps)<>1 then bugmes();quit;end
  107.  
  108. if cmpr([x;h1],tlist('r',[x;h1(2)],[ones(x);h1(3)],[]),eps)<>1 then bugmes();quit;end
  109.  
  110. h1=[num/den;den/num];x=[0.3;-1.5];
  111.  
  112. if cmpr([h1,x],tlist('r',[h1(2),x],[h1(3),ones(x)],[]),eps)<>1 then bugmes();quit;end
  113.  
  114. if cmpr([x,h1],tlist('r',[x,h1(2)],[ones(x),h1(3)],[]),eps)<>1 then bugmes();quit;end
  115.  
  116. if cmpr([h1;x],tlist('r',[h1(2);x],[h1(3);ones(x)],[]),eps)<>1 then bugmes();quit;end
  117.  
  118. if cmpr([x;h1],tlist('r',[x;h1(2)],[ones(x);h1(3)],[]),eps)<>1 then bugmes();quit;end
  119.  
  120. x=[1.5+3*s;-1+s**3];
  121.  
  122. if cmpr([h1,x],tlist('r',[h1(2),x],[h1(3),ones(x)],[]),eps)<>1 then bugmes();quit;end
  123.  
  124. if cmpr([x,h1],tlist('r',[x,h1(2)],[ones(x),h1(3)],[]),eps)<>1 then bugmes();quit;end
  125.  
  126. if cmpr([h1;x],tlist('r',[h1(2);x],[h1(3);ones(x)],[]),eps)<>1 then bugmes();quit;end
  127.  
  128. if cmpr([x;h1],tlist('r',[x;h1(2)],[ones(x);h1(3)],[]),eps)<>1 then bugmes();quit;end
  129.  
  130. h1=[num/den,den/num];x=[1.5+3*s,-1+s**2];
  131.  
  132. if cmpr([h1,x],tlist('r',[h1(2),x],[h1(3),ones(x)],[]),eps)<>1 then bugmes();quit;end
  133.  
  134. if cmpr([x,h1],tlist('r',[x,h1(2)],[ones(x),h1(3)],[]),eps)<>1 then bugmes();quit;end
  135.  
  136. if cmpr([h1;x],tlist('r',[h1(2);x],[h1(3);ones(x)],[]),eps)<>1 then bugmes();quit;end
  137.  
  138. if cmpr([x;h1],tlist('r',[x;h1(2)],[ones(x);h1(3)],[]),eps)<>1 then bugmes();quit;end
  139.  
  140. h1=[num/den;den/num];y=-0.5+s**3;h2=[num/y;y*y/(y+1)];
  141.  
  142. if cmpr([h1,h2],tlist('r',[h1(2),h2(2)],[h1(3),h2(3)],[]),eps)<>1 then bugmes();quit;end
  143.  
  144. if cmpr([h1;h2],tlist('r',[h1(2);h2(2)],[h1(3);h2(3)],[]),eps)<>1 then bugmes();quit;end
  145.  
  146. h1=[num/den,den/num];y=-0.5+s**3;h2=[num/y,y*y/(y+1)];
  147.  
  148. if cmpr([h1,h2],tlist('r',[h1(2),h2(2)],[h1(3),h2(3)],[]),eps)<>1 then bugmes();quit;end
  149.  
  150. if cmpr([h1;h2],tlist('r',[h1(2);h2(2)],[h1(3);h2(3)],[]),eps)<>1 then bugmes();quit;end
  151.  
  152. //
  153.  
  154. // extraction
  155.  
  156. //
  157.  
  158. h1=[num/den,den/num];
  159.  
  160. if cmpr(h1(1,1),num/den,eps)<>1 then bugmes();quit;end
  161.  
  162. if cmpr(h1(1,1:2),h1,eps)<>1 then bugmes();quit;end
  163.  
  164. if cmpr(h1(1,[2 1]),[den/num,num/den],eps)<>1 then bugmes();quit;end
  165.  
  166. h1=[num/den;den/num];
  167.  
  168. if cmpr(h1(2,1),den/num,eps)<>1 then bugmes();quit;end
  169.  
  170. if cmpr(h1(1:2,1),h1,eps)<>1 then bugmes();quit;end
  171.  
  172. if cmpr(h1([2 1],1),[den/num;num/den],eps)<>1 then bugmes();quit;end
  173.  
  174. y=-0.5+s**3;h1=[num/den,den/num];h2=[num/den,den/num;num/y,y*y/(y+1)];
  175.  
  176. if cmpr(h2(2,1),num/y,eps)<>1 then bugmes();quit;end
  177.  
  178. if cmpr(h2(1:2,1:2),h2,eps)<>1 then bugmes();quit;end
  179.  
  180. if cmpr(h2([2 1],1),[num/y;num/den],eps)<>1 then bugmes();quit;end
  181.  
  182. if cmpr(h2(:,1),[num/den;num/y],eps)<>1 then bugmes();quit;end
  183.  
  184. if cmpr(h2(2,:),[num/y,y*y/(y+1)],eps)<>1 then bugmes();quit;end
  185.  
  186. if cmpr(h2(:,:),h2,eps)<>1 then bugmes();quit;end
  187.  
  188. //
  189.  
  190. // insertions
  191.  
  192. //
  193.  
  194. h1=[num/den,den/num];x=0.33;
  195.  
  196. hh=h1;hh(1,1)=x;if cmpr(hh,[x,h1(1,2)],eps)<>1 then bugmes();quit;end;
  197.  
  198. x=[-2.67 0.8];
  199.  
  200. hh=h1;hh(1,1:2)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  201.  
  202. hh=h1;hh(1,[2 1])=x;if cmpr(hh,x([2,1]),eps)<>1 then bugmes();quit;end;
  203.  
  204. hh=h1;hh(1,[2;1])=x;if cmpr(hh,x([2,1]),eps)<>1 then bugmes();quit;end;
  205.  
  206. hh=h1;hh(1,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  207.  
  208. hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  209.  
  210. h1=[num/den;den/num];x=0.33;
  211.  
  212. hh=h1;hh(1,1)=x;if cmpr(hh,[x;h1(2,1)],eps)<>1 then bugmes();quit;end;
  213.  
  214. x=[-2.67;0.8];
  215.  
  216. hh=h1;hh(1:2,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  217.  
  218. hh=h1;hh(:,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  219.  
  220. hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  221.  
  222. hh=h1;hh([2 1],1)=x;if cmpr(hh,x([2 1]),eps)<>1 then bugmes();quit;end;
  223.  
  224. hh=h1;hh([2;1],1)=x;if cmpr(hh,x([2 1]),eps)<>1 then bugmes();quit;end;
  225.  
  226.  
  227. h1=[num/den,den/num];x=0.33*s+1;
  228.  
  229. hh=h1;hh(1,1)=x;if cmpr(hh,[x,h1(1,2)],eps)<>1 then bugmes();quit;end;
  230.  
  231. x=[-2.67 0.8+s**3];
  232.  
  233. hh=h1;hh(1,1:2)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  234.  
  235. hh=h1;hh(1,[2 1])=x;if cmpr(hh,x([2,1]),eps)<>1 then bugmes();quit;end;
  236.  
  237. hh=h1;hh(1,[2;1])=x;if cmpr(hh,x([2,1]),eps)<>1 then bugmes();quit;end;
  238.  
  239. hh=h1;hh(1,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  240.  
  241. hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  242.  
  243. h1=[num/den;den/num];x=-0.33+38*s;
  244.  
  245. hh=h1;hh(1,1)=x;if cmpr(hh,[x;h1(2,1)],eps)<>1 then bugmes();quit;end;
  246.  
  247. x=[-2.67-s*8;0.8];
  248.  
  249. hh=h1;hh(1:2,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  250.  
  251. hh=h1;hh(:,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  252.  
  253. hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  254.  
  255. hh=h1;hh([2 1],1)=x;if cmpr(hh,x([2 1]),eps)<>1 then bugmes();quit;end;
  256.  
  257. hh=h1;hh([2;1],1)=x;if cmpr(hh,x([2 1]),eps)<>1 then bugmes();quit;end;
  258.  
  259. h1=[num/den,den/num];y=0.33*s+1;x=y*y/(y+1);
  260.  
  261. hh=h1;hh(1,1)=x;if cmpr(hh,[x,h1(1,2)],eps)<>1 then bugmes();quit;end;
  262.  
  263. x=[num/y,y*y/(y+1)];
  264.  
  265. hh=h1;hh(1,1:2)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  266.  
  267. hh=h1;hh(1,[2 1])=x;if cmpr(hh,x(1,[2,1]),eps)<>1 then bugmes();quit;end;
  268.  
  269. hh=h1;hh(1,[2;1])=x;if cmpr(hh,x(1,[2,1]),eps)<>1 then bugmes();quit;end;
  270.  
  271. hh=h1;hh(1,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  272.  
  273. hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  274.  
  275. h1=[num/den;den/num];x=[num/y;y*y/(y+1)];
  276.  
  277. hh=h1;hh(1:2,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  278.  
  279. hh=h1;hh(:,1)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  280.  
  281. hh=h1;hh(:,:)=x;if cmpr(hh,x,eps)<>1 then bugmes();quit;end;
  282.  
  283. hh=h1;hh([2 1],1)=x;if cmpr(hh,x([2 1],1),eps)<>1 then bugmes();quit;end;
  284.  
  285. hh=h1;hh([2;1],1)=x;if cmpr(hh,x([2 1],1),eps)<>1 then bugmes();quit;end;
  286.  
  287. //
  288.  
  289. // matrix operations
  290.  
  291. //
  292.  
  293. h1=[num/den,den/num];x=[0.3 1.5];
  294.  
  295. if cmpr(-h1,(-1)*h1,eps)<>1 then bugmes();quit;end
  296.  
  297. if cmpr(h1+x,[h1(1,1)+x(1,1) h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
  298.  
  299. if cmpr(x+h1,[h1(1,1)+x(1,1) h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
  300.  
  301. if cmpr(h1-x,[h1(1,1)-x(1,1) h1(1,2)-x(1,2)],eps)<>1 then bugmes();quit;end
  302.  
  303. if cmpr(x-h1,[-h1(1,1)+x(1,1) -h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
  304.  
  305. h1=[num/den;den/num];x=[0.3;1.5];
  306.  
  307. if cmpr(-h1,(-1)*h1,eps)<>1 then bugmes();quit;end
  308.  
  309. if cmpr(h1+x,[h1(1,1)+x(1,1); h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
  310.  
  311. if cmpr(x+h1,[h1(1,1)+x(1,1); h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
  312.  
  313. if cmpr(h1-x,[h1(1,1)-x(1,1); h1(2,1)-x(2,1)],eps)<>1 then bugmes();quit;end
  314.  
  315. if cmpr(x-h1,[-h1(1,1)+x(1,1); -h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
  316.  
  317.  
  318.  
  319. h1=[num/den,den/num];x=[0.3+s, 1.5];
  320.  
  321. if cmpr(-h1,(-1)*h1,eps)<>1 then bugmes();quit;end
  322.  
  323. if cmpr(h1+x,[h1(1,1)+x(1,1) h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
  324.  
  325. if cmpr(x+h1,[h1(1,1)+x(1,1) h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
  326.  
  327. if cmpr(h1-x,[h1(1,1)-x(1,1) h1(1,2)-x(1,2)],eps)<>1 then bugmes();quit;end
  328.  
  329. if cmpr(x-h1,[-h1(1,1)+x(1,1) -h1(1,2)+x(1,2)],eps)<>1 then bugmes();quit;end
  330.  
  331. h1=[num/den;den/num];x=[0.3;1.5-3*s];
  332.  
  333. if cmpr(-h1,(-1)*h1,eps)<>1 then bugmes();quit;end
  334.  
  335. if cmpr(h1+x,[h1(1,1)+x(1,1); h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
  336.  
  337. if cmpr(x+h1,[h1(1,1)+x(1,1); h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
  338.  
  339. if cmpr(h1-x,[h1(1,1)-x(1,1); h1(2,1)-x(2,1)],eps)<>1 then bugmes();quit;end
  340.  
  341. if cmpr(x-h1,[-h1(1,1)+x(1,1); -h1(2,1)+x(2,1)],eps)<>1 then bugmes();quit;end
  342.  
  343. //
  344.  
  345. //
  346.  
  347. h1=[num/den,den/num];
  348.  
  349. if cmpr([num,den]/den,[num/den,1],eps)<>1 then bugmes();quit;end
  350.  
  351. if cmpr(den\[num,den],[num/den,1],eps)<>1 then bugmes();quit;end
  352.  
  353. if cmpr([num,den]./[den,num],h1,eps)<>1 then bugmes();quit;end
  354.  
  355. if cmpr([den,num].\[num,den],h1,eps)<>1 then bugmes();quit;end
  356.  
  357. h1=[num/den,den/num];x=[0.3 1.5];
  358.  
  359. if cmpr(h1/x(1),[h1(1,1)/x(1),h1(1,2)/x(1)],eps)<>1 then bugmes();quit;end
  360.  
  361. if cmpr(x(1)\h1,[h1(1,1)/x(1),h1(1,2)/x(1)],eps)<>1 then bugmes();quit;end
  362.  
  363. if cmpr(h1./x,[h1(1,1)/x(1),h1(1,2)/x(2)],eps)<>1 then bugmes();quit;end
  364.  
  365. if cmpr(x.\h1,[h1(1,1)/x(1),h1(1,2)/x(2)],eps)<>1 then bugmes();quit;end
  366.  
  367. if cmpr(h1*x(1),[h1(1,1)*x(1),h1(1,2)*x(1)],eps)<>1 then bugmes();quit;end
  368.  
  369. if cmpr(h1.*x,[h1(1,1)*x(1),h1(1,2)*x(2)],eps)<>1 then bugmes();quit;end
  370.  
  371. h1=[num/den;den/num];
  372.  
  373. if cmpr([num;den]/den,[num/den;1],eps)<>1 then bugmes();quit;end
  374.  
  375. if cmpr(den\[num;den],[num/den;1],eps)<>1 then bugmes();quit;end
  376.  
  377. if cmpr([num;den]./[den;num],h1,eps)<>1 then bugmes();quit;end
  378.  
  379. if cmpr([den;num].\[num;den],h1,eps)<>1 then bugmes();quit;end
  380.  
  381.  
  382. x=[0.3;1.5];
  383.  
  384. if cmpr(h1/x(1),[h1(1,1)/x(1);h1(2,1)/x(1)],eps)<>1 then bugmes();quit;end
  385.  
  386. if cmpr(x(1)\h1,[h1(1,1)/x(1);h1(2,1)/x(1)],eps)<>1 then bugmes();quit;end
  387.  
  388. if cmpr(h1./x,[h1(1,1)/x(1);h1(2,1)/x(2)],eps)<>1 then bugmes();quit;end
  389.  
  390. if cmpr(x.\h1,[h1(1,1)/x(1);h1(2,1)/x(2)],eps)<>1 then bugmes();quit;end
  391.  
  392. if cmpr(h1*x(1),[h1(1,1)*x(1);h1(2,1)*x(1)],eps)<>1 then bugmes();quit;end
  393.  
  394. if cmpr(h1.*x,[h1(1,1)*x(1);h1(2,1)*x(2)],eps)<>1 then bugmes();quit;end
  395.  
  396. if cmpr(h1'*x,h1(1,1)*x(1)+h1(2,1)*x(2),eps)<>1 then bugmes();quit;end
  397.  
  398. if cmpr(h1*x',[h1(1,1)*x(1),h1(1,1)*x(2);h1(2,1)*x(1),h1(2,1)*x(2)],eps)<>1,
  399.     then bugmes();quit;end
  400.  
  401. h1=[num/den,den/num];x=[0.3+3*s, 1.5];
  402.  
  403. if cmpr(h1/x(1),[h1(1,1)/x(1),h1(1,2)/x(1)],eps)<>1 then bugmes();quit;end
  404.  
  405. if cmpr(x(1)\h1,[h1(1,1)/x(1),h1(1,2)/x(1)],eps)<>1 then bugmes();quit;end
  406.  
  407. if cmpr(h1./x,[h1(1,1)/x(1),h1(1,2)/x(2)],eps)<>1 then bugmes();quit;end
  408.  
  409. if cmpr(x.\h1,[h1(1,1)/x(1),h1(1,2)/x(2)],eps)<>1 then bugmes();quit;end
  410.  
  411. if cmpr(h1*x(1),[h1(1,1)*x(1),h1(1,2)*x(1)],eps)<>1 then bugmes();quit;end
  412.  
  413. if cmpr(h1.*x,[h1(1,1)*x(1),h1(1,2)*x(2)],eps)<>1 then bugmes();quit;end
  414.  
  415. if cmpr(h1*x',h1(1,1)*x(1)+h1(1,2)*x(2),eps)<>1 then bugmes();quit;end
  416.  
  417. if cmpr(h1'*x,[h1(1,1)*x(1),h1(1,1)*x(2);h1(1,2)*x(1),h1(1,2)*x(2)],eps)<>1,
  418.     then bugmes();quit;end
  419.  
  420. h1=[num/den;den/num];x=[0.3+3*s; 1.5];
  421.  
  422. if cmpr(h1/x(1),[h1(1,1)/x(1);h1(2,1)/x(1)],eps)<>1 then bugmes();quit;end
  423.  
  424. if cmpr(x(1)\h1,[h1(1,1)/x(1);h1(2,1)/x(1)],eps)<>1 then bugmes();quit;end
  425.  
  426. if cmpr(h1./x,[h1(1,1)/x(1);h1(2,1)/x(2)],eps)<>1 then bugmes();quit;end
  427.  
  428. if cmpr(x.\h1,[h1(1,1)/x(1);h1(2,1)/x(2)],eps)<>1 then bugmes();quit;end
  429.  
  430. if cmpr(h1*x(1),[h1(1,1)*x(1);h1(2,1)*x(1)],eps)<>1 then bugmes();quit;end
  431.  
  432. if cmpr(h1.*x,[h1(1,1)*x(1);h1(2,1)*x(2)],eps)<>1 then bugmes();quit;end
  433.  
  434. if cmpr(h1'*x,h1(1,1)*x(1)+h1(2,1)*x(2),eps)<>1 then bugmes();quit;end
  435.  
  436. if cmpr(h1*x',[h1(1,1)*x(1),h1(1,1)*x(2);h1(2,1)*x(1),h1(2,1)*x(2)],eps)<>1,
  437.     then bugmes();quit;end
  438.  
  439. h1=[num/den,den/num];x=[0.3/s,1.5-s**2/(1+s**2)];
  440.  
  441. if cmpr(h1/x(1,1),[h1(1,1)/x(1,1),h1(1,2)/x(1,1)],eps)<>1 then bugmes();quit;end
  442.  
  443. if cmpr(x(1,1)\h1,[h1(1,1)/x(1,1),h1(1,2)/x(1,1)],eps)<>1 then bugmes();quit;end
  444.  
  445. if cmpr(h1./x,[h1(1,1)/x(1,1),h1(1,2)/x(1,2)],eps)<>1 then bugmes();quit;end
  446.  
  447. if cmpr(x.\h1,[h1(1,1)/x(1,1),h1(1,2)/x(1,2)],eps)<>1 then bugmes();quit;end
  448.  
  449. if cmpr(h1*x(1,1),[h1(1,1)*x(1,1),h1(1,2)*x(1,1)],eps)<>1 then bugmes();quit;end
  450.  
  451. if cmpr(h1.*x,[h1(1,1)*x(1,1),h1(1,2)*x(1,2)],eps)<>1 then bugmes();quit;end
  452.  
  453.  
  454. h1=[num/den;den/num];x=[0.3/s;1.5-s**2/(1+s**2)];
  455.  
  456. if cmpr(h1/x(1,1),[h1(1,1)/x(1,1);h1(2,1)/x(1,1)],eps)<>1 then bugmes();quit;end
  457.  
  458. if cmpr(x(1,1)\h1,[h1(1,1)/x(1,1);h1(2,1)/x(1,1)],eps)<>1 then bugmes();quit;end
  459.  
  460. if cmpr(h1./x,[h1(1,1)/x(1,1);h1(2,1)/x(2,1)],eps)<>1 then bugmes();quit;end
  461.  
  462. if cmpr(x.\h1,[h1(1,1)/x(1,1);h1(2,1)/x(2,1)],eps)<>1 then bugmes();quit;end
  463.  
  464. if cmpr(h1*x(1,1),[h1(1,1)*x(1,1);h1(2,1)*x(1,1)],eps)<>1 then bugmes();quit;end
  465.  
  466. if cmpr(h1.*x,[h1(1,1)*x(1,1);h1(2,1)*x(2,1)],eps)<>1 then bugmes();quit;end
  467.  
  468. if cmpr(h1'*x,h1(1,1)*x(1,1)+h1(2,1)*x(2,1),eps)<>1 then bugmes();quit;end
  469.  
  470. if cmpr(h1*x',[h1(1,1)*x(1,1),h1(1,1)*x(2,1)
  471.                h1(2,1)*x(1,1),h1(2,1)*x(2,1)],eps)<>1,
  472.     then bugmes();quit;end
  473.  
  474. //
  475.  
  476.  
  477. h1=h1*x';x=[1 2;3 4];
  478.  
  479. if cmpr(h1/x,h1*inv(x),eps)<>1 then bugmes();quit;end
  480.  
  481. if cmpr(x\h1,inv(x)*h1,eps)<>1 then bugmes();quit;end
  482.  
  483. x=[s s*s+s-1;1 s+1];xi=[1+s,1-s-s*s;-1 s];
  484.  
  485. if norm(coeff(invr(x)-xi))>eps then bugmes();quit;end
  486.  
  487. if cmpr(h1/x,h1*xi,eps)<>1 then bugmes();quit;end
  488.  
  489. if cmpr(x\h1,xi*h1,eps)<>1 then bugmes();quit;end
  490.  
  491. if cmpr(x**(-1),xi,eps)<>1 then bugmes();quit;end
  492.  
  493. x=[1/(1+s) 1/(s*(s+1))-1;1 1/s];xi=[1/s,-1/(s*(s+1))+1;-1,1/(1+s)];
  494.  
  495. if cmpr(invr(x),xi,eps)<>1 then bugmes();quit;end
  496.  
  497. if cmpr(h1/x,h1*xi,eps)<>1 then bugmes();quit;end
  498.  
  499. if cmpr(x\h1,xi*h1,eps)<>1 then bugmes();quit;end
  500.  
  501. if cmpr((1/(1+s))**3,1/((1+s)**3),eps)<>1 then bugmes();quit;end
  502.  
  503. x=[1/(1+s),1;0 1/s];x3=[x(1,1)**3,x(1,1)**2+x(2,2)*(x(2,2)+x(1,1));0,x(2,2)**3];
  504.  
  505. if cmpr(x**3,x3,eps)<>1 then bugmes();quit;end
  506.  
  507.